package com.example.j280_webproject.day038.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 此类为班级表的JDBC操作类
 */
public class ClassJDBC {
    /**
     *根据一个班级的名称，查询此班级是否存在。如果找到则返回对应的id值，如果没有找到则返回-1
     *
     * @param conn             数据库连接池
     * @param className        班级名称
     * @return                 返回int型的值
     * @throws SQLException    SQL异常
     */
    public int selectByclassName (Connection conn,String className) throws SQLException {
        String sql="select id from class where className=?";
        PreparedStatement preparedStatement = conn.prepareStatement(sql);                // 预处理执行集  目的是为了防范SQL注入攻击
        preparedStatement.setString(1,className);
        ResultSet resultSet = preparedStatement.executeQuery();                          // 因为班级名是唯一的，所以如果查询成功，只会返回一条数据
        if (resultSet.next()){                                                           // 如果查询成功resultSet.next()为true
            int id = resultSet.getInt("id");                                 // 获取班级id值
            return id;                                                                   // 如果班级存在返回班级id值
        }
        return -1;                                                                       // 如果班级不存在则返回为-1
    }

    /**
     * 根据一个班级的名称，新增一条班级记录
     *
     * @param conn             数据库连接池
     * @param className        班级名称
     * @throws SQLException    SQL异常
     */
    public void insert(Connection conn,String className) throws SQLException {
        String sql = "insert into class(className) values (?)";
        PreparedStatement preparedStatement = conn.prepareStatement(sql);                // 预处理执行集  目的是为了防范SQL注入攻击
        preparedStatement.setString(1,className);
        preparedStatement.execute();                                                     // 提交执行sql语句
    }
}
